package com.qf.controller;

/**
 * --- 就那样---
 *
 * @author zzw
 * @date 2025/8/16
 * @desc
 */

import com.qf.entity.Tbuser;
import com.qf.entity.User;
import com.qf.service.TbUserService;
import com.qf.service.UserService;
import com.qf.util.R;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

/**
 * 演示mybatis的crud 增删改查_控制层
 */
@RestController  //需要返回json 用这个注解
public class MybatisController {
    /**
     * 根据id查询用户
     */
    /**
     * 注入 业务层对象  （控制层——业务层）
     */
    @Autowired
    private TbUserService tbUserService;

    /**
     *单独查id的控制器
     */
    @GetMapping("/user/{id}")//路径参数  @PathVariable依赖注解
    public R findTbUserById(@PathVariable int id){
        Tbuser tbUserById = tbUserService.findTbUserById(id);//前端传过来的id
        if (tbUserById ==null){
            return R.error(404,"失败");
        }
        return R.success(tbUserById);//成功的话返回id
    }

    /**
     * 无条件查全部
     */
    @GetMapping("/user/list")
    public R TbUserList(){  //查全部无参
        List<Tbuser> list =tbUserService.list();//前端传过来的id
        return R.success(list);//成功的话返回id
    }

    /**
     * 多条件查询
     * 比如通过用户名 密码查询
     */
    @GetMapping("/user/login")//
    public R login(String username,String password){
        Tbuser tbuser=tbUserService.login(username,password);  //登录后直接返回对象 也就是这个用户的所有信息
        return R.success(tbuser);//成功的话返回id
    }

    /**
     * 增加sql数据的方法
     */
    @GetMapping("/user/add")
    public R addTbUser(Tbuser tbuser){
        int adduser = tbUserService.adduser(tbuser);
        return R.success();
    }

    @GetMapping("/user/update")
    public R updateTbUser(Tbuser tbuser){
        tbUserService.updateTbUser(tbuser);
        return R.success();
    }

    @GetMapping("/user/delete")
    public R deleteTbUser(String id){
        tbUserService.deleteTbUser(id);
        return R.success();
    }



}